Skip to main content

Brief key points of HTTP protocol

HTTP/1.0

Each transmission/connection.12 File transmission is slow due to TCP slow start mechanism and huge overhead of connection buildup & tear-down of each connection.1

HTTP/1.1

Add keep-alive, enables multiple transmission/connection. Files are transferred serialised (second one starts after first one finishes).1 2 concurrent transferring is only possible when there are multiple TCP connections to a server. Hence, the keep-alive concept lost most of its benefit.2

Add pipeline, requests can be sent continuously without receiving response.12 This feature lost most of its benefit by lacking support on the server side.2

Add chunked responses by not specifying Content-Length, so the client keep receiving until EOF is read.1

HTTP/2.0

Concurrency transmission is allowed,12 but all traffic shared with one connection suffer from packet lose, even only one of the traffic has the lose. This is because TCP doesn't know its upper layers' abstraction, only lose in TCP layer is treated equally.2 1

HTTP/2 is a binary protocol, which improves transmission efficiency.1

Header compression (HPACK) for the same or similar headers in requests.1

server-side push to pre-load content and store it in the client's cache.1

HTTP/3.0

Uses UDP as transmission protocol.2 Data transmission guarantee relays on internal check mechanism instead of using TCP.

Load balancing by not-so-smart load balancers, routers or switches may break the communication since they use four-tuple (SIP, DIP, SPort, DPort) for hash at most. Connection ID which is used to identify communication in the protocol is ignored.1

Footnotes

  1. HTTP的前世今生 | 酷 壳 - CoolShell, Zotero 2 3 4 5 6 7 8 9 10 11

  2. HTTP/3: the past, the present, and the future, Zotero 2 3 4 5 6 7 8